It is well known that the alteration or the damage of data leaves traces in certain parts of the information processed and stored in a memory, either before or after being processed. It is also known that a simple mathematical technique such as “checksum” is used in order to determine if the data taken into consideration has been modified by establishing a checksum reference.
However, it is possible that the control system has also been altered and that it is no longer able to verify the contents of its memory. Thus, during the course of mathematical operations, the propagation of compensatory random errors may occur, giving an identical result to the one expected. Consequently, verification by the known methods will be inoperative in certain cases.
There is, therefore, a problem that is not solved in a satisfactory manner, which consists in improving the reliability and the security achieved by the known verification methods, particularly when the same unit is in charge of calculating its own checksum and of comparing it with a reference value.
It is well known that, in order to render all data modifications visible, a mono-directional operation is used on the data, that is, an operation that is easy to perform in one direction but almost impossible to perform in the other direction. For example, the operation XY is easy to carry out, while the operation Y√X is much more difficult.
The term collision-free operation means an operation according to which any different combination of data that is entered gives a similar result.
Within the sphere of this invention, this mono-directional operation is a mathematical application H of a source group towards an object group, in which each x element of the source group is attributed with an H(X) symbol. These functions are particularly useful when there are functions known as Hash, as they are defined on page 27 of the RSA Laboratories publication “Frequently Asked Questions About Today's Cryptography, v.4.0”. The x element can be of any length, but H(X) always has a series of characters of a fixed length (fixed-size string). Such a function is difficult to invert, that is to say, knowing H(x) does not generally mean that x can be found. It is said to be more collision-free when it is injective, that is, that H(Y)=H(X) leads to y=x, or H(Y)≈H(X) leads to y≠x.